/**
 * @param {number[]} nums
 * @return {number}
 */
 var subsetXORSum = function(nums) {
    if(nums.length == 0)
        return 0
    const n = nums.length
    let ans = 0
    const dfs = (index, list) => {
        if(index === n){
            if(list.length > 0){
                let temp = list.reduce((pre,cur) => pre^cur)
                ans += temp
            }
            return
        }
        list.push(nums[index])//选择当前数加入子集
        dfs(index+1, list)//基于当前数,向下递归,考察下一个数
        list.pop()//上层递归结束
        dfs(index+1, list)//不选择当前数加入子集
    }
    dfs(0, [])
    return ans
};